#ifndef NAME_H
#define NAME_H

#include <wx/wx.h>
#include "cJSON.h"
#include <vector>
#include "icontroller.h"

class Name
{
public:
	Name();
	Name(const cJSON*);
	~Name();
	void parse(const cJSON*);
	cJSON* build();
	char* getName();
	void setName(const char*);
	char* getGender();
	void setGender(const char*);
	char* getUsage();
	void setUsage(const char*);
private:
	char* name;
	char* gender;
	char* usage;
};

class NameController:public IController<Name>
{
public:
	NameController();
	~NameController();
	void load(const wxString&);
	void encode(const wxString&);
	Name* get(const int&);
	void append(Name*);
	void remove(const int&);
	void clear();
private:
	std::vector<Name*> names;
};

#endif // NAME_H
